package com.zmn.plat.anole.interfaces;

import java.util.List;

/**
 * 描述: 加解密接口, 可实现自定义方法定义加密解密规则
 *
 * @author jiafei
 * @version v1.0
 * @since 2021/8/26 15:51
 */
public interface IEncryptDecrypt {

	/**
	 * 描述: 加密方法
	 *
	 * @param parameterObject Mybatis入参
	 * @return T
	 * @throws IllegalAccessException java.lang.IllegalAccessException
	 * @version v1.0
	 * @author jiafei
	 * @since 2021/8/26 15:52
	 */
	<T> T encrypt(T parameterObject) throws IllegalAccessException;


	/**
	 * 描述: 解密方法
	 *
	 * @param result Mybatis 返回值，需要判断是否是ArrayList类型
	 * @return List<T>
	 * @throws IllegalAccessException java.lang.IllegalAccessException
	 * @author jiafei
	 * @since 2021/8/26 15:53
	 */
	<T> List<T> decrypt(List<T> result, String key) throws IllegalAccessException;

}
